@Allure
2年前 提问
1个回答
sql排序
Simon
2年前
SQL排序方法有:
ROW_NUMBER()函数:ROW_NUMBER()函数作用就是将SELECT查询到的数据进行排序,每一条数据加一个序号,他不能用做于数据的排名,一般多用于分页查询。
select TOP 6 ROW_NUMBER() OVER (ORDER BY GradeName ASC) AS [ROW_NUMBER], GradeNO,GradeName from BasGradeInfo
RANK()函数:RANK()函数,顾名思义排名函数,可以对某一个字段进行排名,如果出现相同的,他们的排名是一样的。
select TOP 6 RANK() OVER (ORDER BY GradeName ASC) AS [RANK], GradeNO,GradeName from BasGradeInfo
DENSE_RANK()函数:DENSE_RANK()函数也是排名函数,和RANK()功能相似,也是对字段进行排名,它和RANK()的不同之处,DENSE_RANK()排名是连续的,RANK()是跳跃的排名,一般情况下用的排名函数就是RANK() 。
select TOP 6 DENSE_RANK() OVER (ORDER BY GradeName ASC) AS [DENSE_RANK], GradeNO,GradeName from BasGradeInfo
NTILE()函数:NTILE()函数可以对序号进行分组处理,将有序分区中的行分发到指定数目的组中。 各个组有编号,编号从一开始。 对于每一个行,NTILE将返回此行所属的组的编号。这就相当于将查询出来的记录集放到指定长度的数组中,每一个数组元素存放一定数量的记录。
select NTILE(3) OVER (ORDER BY GradeName ASC) AS [NTILE], GradeNO,GradeName from BasGradeInfo WHERE GradeNO IN('G079','G064','G042','G044','G043','G031')